Central Docs
Catálogo Inicio

04. Atributos de layout y `volatile`

Los decoradores de layout se aplican al agregado:

@packed
@align(8)
struct Packet:
    tag: byte
    length: uint32

@packed reduce el padding entre campos y @align(N) solicita una alineación mínima. Deben elegirse según la ABI o el formato que se está representando; no son optimizaciones intercambiables.

Para registros de hardware puede declararse un agregado volatile:

volatile struct UART:
    status: uint32
    control: uint32

volatile conserva las lecturas y escrituras del agregado. No hace atómicas las operaciones, no verifica la dirección MMIO y no sustituye a @unsafe al usar un puntero cuya procedencia no puede demostrarse.